All organizations want to be agile so they can seize opportunities, respond to threats, and generally evolve. Adaptation is a fundamental counter-entropy strategy; organisms, including human organizations that fail to adapt to their environment are not sustainable.
Adaptation as it relates to human organizations includes an ability to support local “variance,” (including automated personalization for a single instance and user-driven modification for a single instance) where the variance can occur without a disruptive “exception,” and global change, (including automated “machine learning”) where change to the whole for all future instances can occur without disruption. However, for software developed using a conventional style, such as Object Oriented Development (OOD) and Service Oriented Architecture (SOA), local adaptation and global adaptation commonly result in disruptive exceptions, as both styles are generally procedural in nature and deliver fixed implementations of models. In these styles the models and their implementation are generally ‘hidden’ behind static interfaces, methods and/or the like, so the models are not modifiable directly by people utilizing the models or by software agents working on their behalf. While a model, or its interface, methods and/or the like, may allow for a range of conditions, those conditions are not subject to variation and change directly by the users interacting with them—they are other fixed attributes of the model. This approach limits dynamic local variance and global change, creating a discontinuity where use and modeling are divided into a “run-time” and “design-time” respectively.
This is the normative convention of software application modeling. It is a paradigm that was established when everything was standardized, change was infrequent and any change was always centrally controlled. In our time of rapid and decentralized change, this paradigm has become a rate-limiter for enterprise agility, organization-wide structural impedance that makes variance and change ‘expensive’ if not, in many cases, impractical for technical reasons alone. This approach limits the general utility of such models and they become increasingly less useful overtime (entropy), such that ‘exceptions’ and change management are major logistical challenges for modern businesses that limit their operational responsiveness. It results in: delays and frustration; shadow systems, which compound change management problems; and lost business value. Given the centrality and importance of information systems to most organizations, the ability for related models to support adaptability (non-disruptive variance and change) is conceptually fundamental to business agility.
The act of modeling defines an ‘object’ for a purpose. In the context of a human organization and Enterprise information systems, models include data models (entities and entity relationship diagrams), process models (flowcharts), service interfaces, business objects, and/or the like. A model definition provides facts regarding an object's attributes, including relationships to other objects. The definitions, attributes and relationships of models are generally subject to change, the only variable being the frequency of change. When model definitions are encoded and deployed in a static fashion they structurally constrain interaction to the design-time context of the central ‘modeler’ and/or designer or the like without consideration of the context of subsequent use of the model (premature optimization), thereby ensuring exceptions to the model, which must be handled, if at all, in a discontinuous fashion. Each implementation is an execution of the ‘as is’ model. The approach promotes standardization at the cost of variance and change.
The conventional software application model, as represented by Object Oriented Development (OOD) and Service Oriented Architecture (SOA), is to design static models of business entities, business objects, services, and processes. To form business applications, the models are integrated, generally in a tightly-coupled manner, which leads to dependencies. As part of a greater system of interaction between models, the problems of adaptation are compounded as change to an application consuming multiple models might also require change to multiple models to achieve the intended change to the application's properties. In addition, in the course of modifying an application, any change to one model of the set of models may negatively impact (e.g., ‘break’ or ‘crash) instances of the application, the application as a whole, and might even cause problems for the greater system on which the application runs. The more complex the application, the higher number of dependencies, the harder it becomes to support variance and change.
In the meantime, the world is becoming increasingly distributed, the rate of change is accelerating, and business requirements are becoming more complex, all of which exacerbate problems with the conventional software application model.
The inventors previously described a solution for increasing context-based customization of interaction deliverables in U.S. patent application Ser. No. 12/698,361, filed on 2 Feb. 2010, published as US Patent Publication No. 2010/0199260, which is hereby incorporated by reference. An embodiment of the solution provides a software application, which includes work order resources, each of which defines an atomic operation for the software application, and a construction service resource, which processes the work order resources in response to all interaction requests for the software application. Each interaction request is received from a client and identifies a corresponding work order, which the construction service processes to dynamically construct a set of deliverables, which can include a custom representation of the work order. While processing the interaction request, the construction service, as directed by the work order, can make one or more requests to context resources for context information corresponding to an activity for which the interaction was requested to construct the set of deliverables. The work order resource can comprise a reflective program that enables the construction service to dynamically determine and construct the set of deliverables, including the next appropriate interaction(s), using the context information, thereby directing a set of atomic operations as part of an activity being performed and enabling the dynamic context-based construction of interaction deliverables.